# 定义一个名为 join_paths 的函数，用于拼接路径
# 第一个参数 joined_path 用于存储拼接后的路径
# 第二个参数 first_path_segment 是路径的第一个片段
function(join_paths joined_path first_path_segment)
    # 初始化临时路径变量，将第一个路径片段赋值给它
    set(temp_path "${first_path_segment}")
    # 遍历传递给函数的其余参数（除前两个参数外）
    foreach(current_segment IN LISTS ARGN)
        # 检查当前路径片段是否不为空
        if(NOT ("${current_segment}" STREQUAL ""))
            # 检查当前路径片段是否为绝对路径
            if(IS_ABSOLUTE "${current_segment}")
                # 若为绝对路径，则直接将临时路径更新为当前绝对路径
                set(temp_path "${current_segment}")
            else()
                # 若为相对路径，则将当前路径片段拼接到临时路径后面，使用 / 作为分隔符
                set(temp_path "${temp_path}/${current_segment}")
            endif()
        endif()
    endforeach()
    # 将最终拼接好的路径赋值给传入的 joined_path 变量，并提升到父作用域
    set(${joined_path} "${temp_path}" PARENT_SCOPE)
endfunction()
